class Solution {
    public int findNumberOfLIS(int[] nums) {
        int n=nums.length;
        int[][] dp=new int[n][2];
        //0存长度，1存数量
        for (int i = 0; i < n; i++) {
            dp[i][0]=1;
            dp[i][1]=1;
        }

        for (int i = 0; i < n; i++) {
            int max=1;
            int count=1;
            for (int j = 0; j < i; j++) {
                if(nums[i]>nums[j]){
                    if(dp[j][0]+1>max){
                        count=1;
                        max=dp[j][0]+1;
                    }else if(dp[j][0]+1==max){
                        count++;
                    }
                }
            }
            dp[i][0]=max;
            dp[i][1]=count;
        }
        int max=-0x3f3f3f3f;
        int count=0;
        for (int i = 0; i < n; i++) {
            if(dp[i][0]>max){
                max=dp[i][0];
                count=dp[i][1];
            }else if(dp[i][0]==max){
                count+=dp[i][1];
            }
        }

        return count;
    }
}